/*******************************************************************************
* Copyright (c) 2010, 2018 西安秦晔信息科技有限公司
* Licensed under the Apache License, Version 2.0 (the "License");
*    you may not use this file except in compliance with the License.
*    You may obtain a copy of the License at
*
*       http://www.apache.org/licenses/LICENSE-2.0
*
*    Unless required by applicable law or agreed to in writing, software
*    distributed under the License is distributed on an "AS IS" BASIS,
*    WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
*    See the License for the specific language governing permissions and
*    limitations under the License.
*******************************************************************************/
package com.qinyeit.serviceapp.service.branchstores;
import com.alibaba.fastjson.JSONObject;
import com.qinyetech.springstage.core.service.IBaseService;
import com.qinyeit.serviceapp.entity.BranchPurchaseOrder;

/** 
 * ClassName: BranchPurchaseOrderService <br/> 
 * Function: 门店采购订单业务功能 <br/> 
 * date: 2018-11-29 17:12:44 <br/> 
 * 
 * @author liuwenjin
 * @version 1.0
 * @since JDK 1.8
 */
public interface BranchPurchaseOrderService extends IBaseService<BranchPurchaseOrder, Long>{

    /**
     * 保存直配单
     * @param data
     *      type:1保存 2 提交并审核 3 确认收货
     *
     *     purchaseOrder:{
     *              branchId：
     *              branchName：
     *              address：
     *              orderType:
     *              remark:
     *              type:'ZHIPEI'  or 'ZICAI'
     *
     *     },
     *     details:[
     *          {
     *              specId：
     *              no：
     *              name：
     *              materialSpec：
     *              stockUnit：
     *              purchaseSpec：
     *              purchaseUnit：
     *              purchaseCount：
     *              purchasePrice：
     *              sendCount：
     *              sendPrice：
     *              acceptCount：
     *              acceptPrice：
     *              groupRemark：
     *              branchRemark：
     *              stockId：
     *              stockName：

     *          }
     *     ]
     *
     * @param merchantGroupId
     * @param operator
     */
    void saveData(JSONObject data,Long merchantGroupId,String operator);

    /**
     * 根据订单编号 修改订单状态为已完成
     * @param id :单店版 订单id
     */
    void updateOrderState(Long id,Long merchantGroupId);

    /**
     * 保存自采订单
     * @param id :单店版 订单id
     */
    void saveOrderForZicai(Long id,Long merchantGroupId);

    /**
     * 删除订单
     * @param id
     */
    void deletedAll(Long id);

    /**
     * 审核驳回
     *      1.将单店的订单 状态改为未审核
     *      2.将总部的订单删除
     * @param no
     * @param merchantGroupId
     */
    void reject(String no, Long merchantGroupId);
}